home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / falcon / scrdump / source / 0_readme.src next >
Text File  |  1995-04-27  |  6KB  |  194 lines

  1. XALTHELP/SCRDUMP, GEMDUMP Sourcen
  2.  
  3. V1.0, 20.4.1994
  4.  
  5. geschrieben von Th. Morus Walter
  6. (c) 1994 by Never Ready Software, Morus Walter
  7.  
  8. Th. Morus Walter
  9. Schulstr. 22
  10. 93080 Pentling
  11.  
  12. e-mail: morus.walter@rphs1.physik.uni-regensburg.de
  13.  
  14.  ------
  15.  
  16. Die Sourcen zu XALTHELP/SCRDUMP und GEMDUMP dürfen unter den folgenden
  17. Bedingungen weitergegeben, verändert und/oder ganz oder teilweise für
  18. eigene Programme verwendet werden:
  19.  
  20. 1. Weitergabe ist nur vollständig und mit dieser Datei erlaubt
  21. 2. Veränderte Versionen von XALTHELP/SCRDUMP bzw. GEMDUMP dürfen nur
  22.    weitergegeben werden, wenn hinreichend deutlich gemacht wird, da₧
  23.    die Programme verändert wurden.
  24.    Änderung des Namens, Hinweise in der Dokumentation, im Programm...
  25.    Es mu₧ in geeigneter Weise auf die ursprüngliche Urheberschaft der 
  26.    Programme hingewiesen werden.
  27.    ist in geeigneter Weise zu 
  28.    Einer Veröffentlichung geänderter Versionen ist die Kontaktaufnahme
  29.    mit mir - um die Änderung allgemein zu Übernehmen - vorzuziehen.
  30.    Adresse siehe LIESMICH.TXT zum Programm
  31. 3. die Übernahme von Programmteilen in eigene Programme ist erlaubt.
  32.    Dabei mu₧ in geeigneter Weise auf die Verwendung meiner Routinen
  33.    und deren Urheber verwiesen werden.
  34. 4. die obigen Festlegungen sind nicht wörtlich sondern ihrem Sinne
  35.    entsprechend (was natürlich letztenende umfassender ist) zu
  36.    befolgen
  37.    (kurz: geht anständig mit meinen Quellen um)
  38.  
  39. ACHTUNG!
  40. Der Autor übernimmt keinerlei Haftung für irgendwelche Schäden.
  41. Eventuelle Fehler sind das Risiko derer, die die Sourcen verwenden.
  42.  
  43.   -----
  44.  
  45. XALTHELP/SCRDUMP und GEMDUMP wurde mit PureC 1.0 und PASM V'was wei₧ ich'
  46. entwickelt.
  47. Für die Verwendung anderer Compiler sind möglicherweise Anpassungen nötig.
  48. Man beachte insbesondere die Parameterübergabe in Registern von PureC.
  49.  
  50. Die Quellen enthalten echte Tabulatoren. Die Tabulatorweite mit der ich 
  51. arbeite ist 4.
  52.  
  53. Die Quellen sind dokumentiert - allerdings nur knapp.
  54.  
  55. Wer gar nichts versteht, lasse besser die Finger davon.
  56. Wer etwas nicht versteht, 
  57.     denke darüber nach.
  58. Wer etwas nicht versteht, darüber nachgedacht hat 
  59.   und es immer noch nicht versteht 
  60.     probiere es aus.
  61. Wer etwas nicht versteht, darüber nachgedacht hat, es ausprobiert hat 
  62.   und es immer noch nicht versteht
  63.     wende sich gegebenenfalls an mich.
  64.  
  65.   -----
  66.  
  67. Die Sourcen für XALTHELP/SCRDUMP und GEMDUMP sind (teilweise) gemeinsam.
  68. Unterschieden wird dann via bedingter Compilierung, für GEMDUMP mu₧
  69. in den Compileroptionen die Variable 'GEMDUMP' definiert werden.
  70.  
  71. Folgende Sourcen existieren:
  72. GEMDUMP.S        fehlt, kann aber aus PC_START.S erzeugt werden; s.u.
  73.                 (nur für GEMDUMP)
  74. SDUMP.C            Code für den Hauptdialog, Verwaltung des Acc's
  75.                 (GEMDUMP/SCRDUMP)
  76. SCRDUMP.C        eigentliche Speicherroutine
  77.                     für eigene Programme dürfte vor allem die
  78.                     Routine 'do_store_img' interessant sein,
  79.                     die eine durch eine MFDB beschriebene Bitmap
  80.                     in eine .IMG Datei schreibt.
  81.                 (GEMDUMP/XALTHELP)
  82. START.S            Startupcode und Assemblerroutinen (nur XALTHELP)
  83.  
  84. Die Datei GEM.H im Ordner 'include' wird via >include "GEM.H"< eingelesen,
  85. also bei den System-Include-Dateien gesucht; die Datei enthält allgemeine
  86. Makros zum Umgang mit AES-objects.
  87.  
  88. Im Ordner 'rsc' finden sich die Resource-Files, von denen aber nur der
  89. Source-Output im Programm Verwendung findet.
  90. --------------------------------------------------------------------------------
  91. --
  92. --    wir basteln uns eine Source-Datei
  93. --
  94. --------------------------------------------------------------------------------
  95. Aus urheberrechtlichen Gründen fehlt die Datei 'GD_START.S', da es sich 
  96. hierbei im Wesentlichen um die PC_START.S-Datei handelt und ich keine
  97. Lust auf Urheberrechts-Streitigkeiten mit Borland habe.
  98. Um aus der PC_START.S Datei eine GD_START.S zu machen gehe man wie folgt
  99. vor:
  100. - kopiere PC_START.S nach GD_START.S
  101. - füge bei den 'Export references' (ca. Zeile 11) ein:
  102.   XDEF ev_time,inst
  103.   XDEF do_init_vbl,do_exit_vbl,althelp,ah_time
  104. - nach 
  105.     'Start:
  106.             BRA.B    Start0'
  107.   (ca. Zeile 141) füge man ein:
  108.     ev_time:    DC.W    100
  109.                 DC.L    'TMMW'
  110.     inst:        DC.B    "C:\TEMP\SCRDUMP\SCR",0,"                    "    ; 40 Byte!!!!
  111.                 DC.B    1
  112.                 DC.B    1
  113.     even
  114.  
  115. - ans Ende der Datei füge man (vor .END) ein
  116.     ;-------------------------------
  117.     even
  118.  
  119. ;
  120. ;    vbl eintragen (wird im supervisor-modus aufgerufen)
  121. ;
  122. do_init_vbl:MOVE.W    $454,D0
  123.             LSL.W    #2,D0
  124.             MOVE.L    $456,A0
  125.             MOVEQ    #4,D1        ; ersten eintrag auslassen
  126. sloop:        TST.L    0(A0,D1)
  127.             BEQ.B    found_
  128.             ADDQ.W    #4,D1
  129.             CMP.W    D0,D1        ; genial ist die schleife aber nicht!!!
  130.             BNE.B    sloop        ; warum nicht d0 runterzählen, A0 um 4 erhöhen?
  131.  
  132.             CLR.L    D0            ; war wohl nichts
  133.             RTS                    ; ganzer vbl belegt, da kann man nichts machen
  134.  
  135. found_:        LEA        vbl,A1
  136.             MOVE.L    A1,0(A0,D1)
  137.  
  138. ; kb_shift-adresse ermitteln
  139.  
  140.             MOVE.L    $4F2,A0        ; sysbase
  141.             CLR.L    kbshift
  142.             CMP.W    #$0104,2(A0)    ; versionsnummer
  143.             BLT        no_kbshift
  144.             MOVE.L    36(A0),kbshift    ; kbshift-adresse merken (TOS1.4 required!!)
  145.  
  146. no_kbshift:    MOVEQ    #1,D0        ; war erfolgreich
  147.             RTS
  148. ;
  149. ;    vbl-routine löschen
  150. do_exit_vbl:MOVE.W    $454,D0
  151.             LSL.W    #2,D0
  152.             MOVE.L    $456,A0
  153.             MOVE.W    #4,D1
  154.             LEA        vbl,A1
  155. sloop1:        CMPA.L    0(A0,D1),A1
  156.             BEQ.S    found1
  157.             ADDQ.W    #4,D1
  158.             CMP.W    D0,D1
  159.             BNE.S    sloop1
  160.             CLR.L    D0
  161.             RTS
  162. found1:        CLR.L    0(A0,D1)
  163.             MOVEQ    #1,D0
  164.             RTS
  165.  
  166. ;
  167. ;            vbl-routine
  168. ;    ALT HELP         -> setze althelp flag, ah_time
  169. ;    CTRL ALT HELP   -> mache nichts (-> tos-hcopy) (ab tos1.4)
  170. ;    
  171. vbl:        TST.W    $4EE         ; dumpflag ?
  172.             BNE        end_vbl
  173.  
  174.             movea.l    kbshift,a0
  175.             tst.l    a0
  176.             BEQ        notest
  177.             btst    #2,(a0)    ; ctrl ??
  178.             bne        end_vbl        ; dann nichts tun
  179.  
  180. notest:        move.w    #-1,$4EE    ; habs gelesen
  181.             move.w    #1,althelp
  182.             move.l    $4ba,ah_time
  183. end_vbl:    rts
  184.  
  185. kbshift:    DC.L        0
  186.  
  187.         DATA
  188.  
  189. althelp:    DC.W        0
  190. ah_time:    DC.L        0
  191.     ;-------------------------------
  192.  
  193.